import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CandyShop {
    public static void main(String[] args) {
        // список доступных конфет
        List<Candy> candies = new ArrayList<>();
        candies.add(new Candy("Candy A", 20));
        candies.add(new Candy("Candy B", 10));
        candies.add(new Candy("Candy C", 30));
        candies.add(new Candy("Candy D", 25));
        candies.add(new Candy("Candy E", 15));

        int budget = 60; // бюджет покупателя
        int totalWeight = 0; // общий вес купленных конфет
        List<Candy> boughtCandies = new ArrayList<>(); // список купленных конфет

        // сортируем список конфет по цене
        Collections.sort(candies);

        // покупаем конфеты, начиная с самых дорогих
        for (Candy candy : candies) {
            int candyWeight = budget / candy.price; // количество килограммов, которое мы можем купить
            if (candyWeight > 0) {
                totalWeight += candyWeight;
                budget -= candyWeight * candy.price;
                boughtCandies.add(candy);
            }
        }

        // выводим список купленных конфет и оставшийся бюджет
        System.out.println("Купленные конфеты:");
        for (Candy candy : boughtCandies) {
            System.out.println(candy.name + " - " + (budget > 0 ? budget + " рублей и " : "") + (budget > 0 ? -budget : 0) % candy.price + " грамм");
            budget = budget % candy.price;
        }
        System.out.println("Оставшийся бюджет: " + budget + " рублей");
    }
}
